1. Field of the Invention
The present invention relates generally to a data processing system and in particular to a method and system for deploying a set of virtual software resource templates. More particularly, the present invention is directed to a computer-implemented method, apparatus, and computer-usable program code for deploying a set of virtual software resource templates to a set of nodes.
2. Description of the Related Art
Increasingly, modern computing environments are distributing software solutions as a set of virtual machine (VM) images as opposed to the various single software components that make up the solutions. A virtual machine image is a file representation of a virtual machine, the virtual machine devices, and installed software components. Virtualizers, like VMware® Server, instantiate and run virtual machines starting from their file-based representation or image. VMware Server® is a product of VMware Inc. Distributing software solutions as virtual machine images is very appealing for both software vendors and customers because of the simplified and less-error prone deployment and maintenance process.
For example, IT Service Management, which is used to manage large-scale information technology systems, is a distribution software solution that comprises different components and supported topologies. Topologies represent a particular mapping between one or more software components of a solution and one or more machines or topology nodes where these components are installed. Usually, a solution may be deployed in one or more topologies.
With this type of solution, IT Service Management may distribute a lesser number of pre-configured virtual machine images as compared to distributing different major components and middleware components. The major components and middleware components depend on the application to which the virtual machine images are applied. For example, in an application related to database management, DB2 and WebSphere Application Server may constitute part of a set of deployed virtual machine images. DB2 is a relational database management system and WebSphere Application Server is middleware. Both DB2 and WebSphere Application Server are products of International Business Machines Corporation, located in Armonk, N.Y.
The pre-configured virtual machine images may include one or more software stacks. A software stack is a set of software components, such as an operating system, middleware, or application components, needed to deliver a fully functional software solution for a particular application.
In the case of deploying the separate software components, the deployment process consists of installing and configuring all the components of the different software stack and then configuring their inter-connections. In the case of deploying virtual machines (VMs), the deployment process consists of deploying the virtual machines associated with a certain topology and configuring the external connections in each virtual machine so that each virtual machine communicates correctly with the other virtual machines in the topology. Also, the virtual machines are configured to communicate with any necessary services in the existing computing infrastructure into which the virtual machines are being configured.
However, current virtual machine technology is aimed at the process of creating, duplicating, and deploying virtual machines themselves without reference to the application(s) installed in the virtual machine images or to the dependencies among multiple virtual machines that fulfill various parts of a distributed application.
In addition, configuring a large-scale software service can be a difficult and time-consuming task. To achieve optimal performance, such as high throughput, a software service often needs to leverage hardware resources on a set of nodes in a cluster. A node is a computing device that contains resources, such as processing speed, memory capacity, and hard disk space. A node may be either a physical computing device or a virtual computing device. Also, manually configuring nodes to meet one or more service requirements can be a time-consuming task that is vulnerable to user error.